package A1;

/**
 * Created by IntelliJ IDEA.
 * User: nguwi.yokyen
 * Date: Mar 24, 2011
 * Time: 2:41:02 PM
 * To change this template use File | Settings | File Templates.
 */
public class MainUI {

    ProjModel pm;
	GridView gv;

    public MainUI() {
        pm = new ProjModel();
		gv = new GridView (this.pm);
    }

    public void showMenu() {
        /*
        === MENU ===
        1. Set Number of horizontal lanes (H-street) [min 1, max 3]
        2. Set Number of vertical lanes  (V-street) [min 1, max 4]
        3. Set Probability of a car entering H-street [min 0, max 1]
        3. Set Probability of a car entering V-street [min 0, max 1]
        5. Run one simulation cycle
        6. Set and run number of simulation cycles [min 1, max 10]
        Enter your choice>  
		*/
		while (true) {
		gv.initGrid('?');
		gv.showGrid();
        System.out.print( " === MENU ===\n" +
                " 1. Set Number of horizontal lanes (H-street) [min 1, max 3]\n" +
                " 2. Set Number of vertical lanes  (V-street) [min 1, max 4]\n" +
                " 3. Set Probability of a car entering H-street [min 0, max 1]\n" +
                " 4. Set Probability of a car entering V-street [min 0, max 1]\n" +
                " 5. Run one simulation cycle\n" +
                " 6. Set and run number of simulation cycles [min 1, max 10]\n" +
                " ");
        String userChoice = GetUserInput.getUserChoice("Enter your choice>");
        int userChoiceInt = Integer.parseInt(userChoice);
        System.out.println("After int conversion" + userChoiceInt);

        switch(userChoiceInt) {
            case 1 : System.out.println("Menu 1");
                     setNumHorLanes();
                break;
            case 2 : System.out.println("Menu 2");
                     setNumVerLanes();
                break;
            case 3 : System.out.println("Menu 3");
                break;
            case 4 : System.out.println("Menu 4");
                break;
            case 5 : System.out.println("Menu 5");
                break;
            case 6 : System.out.println("Menu 6");
                break;
            default : System.out.println("Error in entering menu choice");
                break;
        }
        }
      }

    public void setNumHorLanes () {
        String userChoice = GetUserInput.getUserChoice("Enter number of horiz lanes : ");
        int userChoiceInt = Integer.parseInt(userChoice);
        int lowerLimit = 1;
        int upperLimit = 3;
        if (userChoiceInt > upperLimit || userChoiceInt < lowerLimit) {
           System.out.println("Error in entering horiz lanes");
           System.out.println("Please enter number above 1 and below 3. ");
           showMenu();
        } else { //if user enter the correct input
            pm.setHorLanes(userChoiceInt);
            //let user set the number
        }

    }

    public void setNumVerLanes () {
        String userChoice = GetUserInput.getUserChoice("Enter number of vert lanes : ");
        int userChoiceInt = Integer.parseInt(userChoice);
        int lowerLimit = 1;
        int upperLimit = 4;
        if (userChoiceInt > upperLimit || userChoiceInt < lowerLimit) {
           System.out.println("Error in entering horiz lanes");
           System.out.println("Please enter number above 1 and below 3. ");
           showMenu();
        } else { //if user enter the correct input
            pm.setVerLanes(userChoiceInt);
            //let user set the number
        }

    }

    public int showHorLanes() {
        return pm.getHorLanes();
    }

    public int showVerLanes() {
        return pm.getVerLanes();
    }

    
}
